package com.lyf.scm.admin.domain.remote.bigdata;

import com.lyf.scm.admin.domain.remote.bigdata.dto.LayeredSkuCodePageDTO;
import com.lyf.scm.admin.domain.remote.bigdata.dto.ProductListQueryDTO;
import com.lyf.scm.admin.domain.remote.bigdata.dto.StockInAndOutDTO;
import com.lyf.scm.admin.domain.remote.bigdata.dto.WarehouseReceiveQtyDTO;
import com.rome.arch.core.clientobject.Response;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 *
 * @author 李兵兵
 * @date 2020/09/25
 */
@FeignClient(name = "BI-OLAP-SERVICE")
public interface BlOlapRemote {

    /**
     * 根据商品编码查询实际到货量（基本单位）、仓库出货量（基本单位） 维度：仓库、门店 查询时间范围：传时间段作为查询条件
     *
     * @param stockInAndOutDTO 股票进出dto
     * @return {@link Response<List<WarehouseReceiveQtyDTO>>}
     */
    @PostMapping("/productStock/getDayStockInAndOut")
    Response<List<WarehouseReceiveQtyDTO>> getStockInAndOut(@RequestBody StockInAndOutDTO stockInAndOutDTO);

    /**
     * 根据工厂或仓库编码查询实际到货量（箱规单位）
     *
     * @param stockInAndOutDTO 股票进出dto
     * @return {@link Response<List<WarehouseReceiveQtyDTO>>}
     */
    @PostMapping("/productStock/getDayStockIn")
    Response<List<WarehouseReceiveQtyDTO>> getStockIn(@RequestBody StockInAndOutDTO stockInAndOutDTO);

    /**
     * 得到产品列表
     *
     * @param productListQueryDTO 产品列表查询dto
     * @return {@link Response< LayeredSkuCodePageDTO >}
     */
    @PostMapping("/product/getProductList")
    Response<LayeredSkuCodePageDTO> getProductList(@RequestBody ProductListQueryDTO productListQueryDTO);
}
